This present invention relates to memory systems, and more particularly to a system and method for testing memory systems.
Recent developments in semiconductor memory technology have substantially increased the use of memories, in particular Random Access Memory (RAM). RAM is the place in a computer where the operating system, application programs, and data in current use are kept so that they can be quickly reached by the computer""s process. RAM is much faster to read from and write to than the other kinds of storage devices in a computer, such as, for example the hard disk, floppy disk, and CD-ROM. However, the data in RAM stays there only as long as a computer is running. When the computer is turned off, RAM loses its data. When the computer is turned on again, the operating system and other files are once again loaded into RAM, usually from the hard disk.
RAM can be compared to a person""s short-term memory and the hard disk to the long-term memory. The short-term memory focuses on work at hand, but can only keep so many facts in view at one time. If short-term memory fills up, the brain sometimes is able to refresh it from facts stored in long-term memory. A computer also works similarly. If RAM fills up, the processor needs to continually go to the hard disk to overlay old data in RAM with new, slowing down the computer""s operation. Unlike the hard disk which can become completely full of data so that it won""t accept any more, RAM may be paged to and from an alternate storage area. It keeps operating, but much more slowly than is desirable.
RAM is small, both in physical size, as it is stored in a microchip and in the amount of data it can hold. It is much smaller than the hard disk. A typical computer may come with thirty-two (32) million bytes of RAM and a hard disk that can hold four (4) billion bytes. RAM comes in the form of a xe2x80x9cdiscretexe2x80x9d microchip and also in the form of modules that may connect to the computer""s motherboard. These modules connect through a bus or set of electrical paths to the processor. The hard drive, on the other hand, stores data on a magnetized surface that looks like a phonograph record.
Today""s personal computers come with sixteen (16) or more megabytes of RAM, usually increasing in multiples of eight (8) megabytes. Users of graphic applications usually need thirty-two (32) or sixty-four (64) megabytes of memory. Most personal computers are designed to allow the user to add additional RAM modules up to a certain limit (for example, up to 64 or 128 megabytes). Having more RAM in the computer reduces the number of times that the computer processor has to read data in from the hard disk, an operation that takes much longer than reading data from RAM. RAM access time takes nanoseconds while hard disk access time takes milliseconds.
RAM is called xe2x80x9crandom accessxe2x80x9d because any storage location can be accessed directly. Originally, the term distinguished regular core memory from offline memory, usually on magnetic tape in which an item of data could only be accessed by starting from the beginning of the tape and finding an address sequentially. RAM is organized and controlled in a way that enables data to be stored and retrieved directly to specific locations. Another term for RAM is direct access storage or memory. Note that other forms of storage such as the hard disk and CD-ROM are also accessed directly (or xe2x80x9crandomlyxe2x80x9d) but the term random access is not applied to these forms of storage.
Nonvolatile random access memory (NVRAM) is a form of static random access memory whose contents are saved when a computer is turned off or if a computer loses its external power source. NVRAM can be implemented by providing static RAM with backup battery power or by saving its contents and restoring them from an electrically erasable programmable Read-Only Memory (ROM). Some modems use NVRAM as a place to keep preset or user-specified phone numbers and modem profiles.
Testing memory systems remains a major concern even though there are many techniques and procedures available. However, there are no efficient means of testing Random Access Memory (RAM) in a single pass. Most systems today run a variety or combination of tests to ensure that execution is possible from a given memory space. These multiple pass or multiple tests consume precious boot-up time.
Therefore, there is still a need to be able to test memory systems, such as RAM, in a single pass and verify that it is suitable for program execution.
The present invention includes a method of and system for high-speed functional and/or execution testing of memory systems such as, but not limited to, Random Access Memories (RAM) in microprocessor-based units or boards. The system and method of the present invention reduces the number of tests run on memory systems thereby increasing efficiency and reducing initial diagnostic and power up time. The system and method of the present invention can test, for example, but not limited to, aspects such as burst read, burst write, execution and dataline. The memory test of the present invention includes a system that is effectively coupled to the microprocessor-based unit under bus structure during test execution and operates on the unit under its own clock rate. The test process sequence may be stored in the unit in its own memory, or may be electrically transferred to the test system""s memory via an external device such as, for example, an In-Circuit Emulator (ICE memory overlay).
In accordance with a preferred embodiment, the method for testing a memory system includes copying a test process sequence into the memory system, updating a first address indicative of a segment of the memory system being tested and resetting a timer such as a watchdog timer. The method further includes comparing the first address to a second address indicative of the end of the segment of the memory system; and copying the test process sequence to a next segment or block of the memory system and iterating through the previous method steps until the first address indicative of the segment of the memory system being tested is equal to the second address indicative of the end of the memory system. The test process sequence may be thought of as self-propagating as it copies itself through the plurality of segments of the memory system, tests the particular segment for burst read, burst write, execution and dataline aspects as a minimum and moves to the next sequential segment.